package com.querydsl.apt.domain;

import javax.persistence.Entity;
import javax.persistence.Id;

import org.junit.Ignore;

@Ignore
public class Enum4Test {

    @Entity
    public static class Product {
        @Id
        long objectId;

        ExportUnit  exportunit;

    }

    public enum ExportUnit {

        MINUTE(0, 1),
        DAY8HOURS(1, 480),        // 8 hours
        EURO(2, null),
        DAY4HOURS(3, 240),    // 4 hours
        FIVEMINUTE(4, 5),
        HOUR(5,60),
        KILOMETERS(6,null),
        PIECE(7,null),
        WEEK(8,null),
        MONTH(9,null),
        PERIOD(10,null),
        YEAR(11,null),
        DAY24HOURS(12,null),
        DAY12HOURS(13,null),
        HALFYEAR(14, null),
        QUARTER(15, null),
        NONE(16, null);

        private final int code;
        private final Integer factor; // to minutes

        ExportUnit(int code, Integer factor) {
            this.code = code;
            this.factor = factor;
        }

        public static ExportUnit get(int code) {
            for (ExportUnit value : ExportUnit.values()) {
                if (value.code == code) {
                    return value;
                }
            }
            throw new IllegalArgumentException("Illegal ExportUnit: " + code);
        }
    }


}
